package com.supcalls;

import cn.hutool.core.util.ZipUtil;
import java.io.File;
import java.nio.file.Paths;

public class ZipUtilExample {
    public static void main(String[] args) {
        // 1. 创建 ZIP 文件
        String zipFilePath = "test.zip";
        String sourceFolder = "test_folder"; // 需要压缩的文件夹
        createZip(zipFilePath, sourceFolder);

        // 2. 解压 ZIP 文件
        String unzipTarget = "unzip_folder";
        unzip(zipFilePath, unzipTarget);

        // 3. 向 ZIP 添加文件
        String newFile = "extra_file.txt"; // 需要添加的文件
        addFileToZip(zipFilePath, newFile);

    }

    /**
     * 创建 ZIP 文件
     */
    private static void createZip(String zipFilePath, String sourceFolder) {
        // 不再需要字符集参数，直接调用 zip 方法
        File zipFile = ZipUtil.zip(sourceFolder, zipFilePath);
        System.out.println("ZIP 文件创建成功：" + zipFile.getAbsolutePath());
    }

    /**
     * 解压 ZIP 文件
     */
    private static void unzip(String zipFilePath, String unzipTarget) {
        File unzipDir = ZipUtil.unzip(zipFilePath, unzipTarget);
        System.out.println("ZIP 文件解压成功：" + unzipDir.getAbsolutePath());
    }

    /**
     * 向 ZIP 添加文件
     */
    private static void addFileToZip(String zipFilePath, String filePath) {
        ZipUtil.append(Paths.get(zipFilePath), Paths.get(filePath));
        System.out.println("文件 " + filePath + " 添加到 ZIP 成功");
    }

}

